package com.wn.controller;

import com.wn.utils.HttpStatus;
import com.wn.utils.Result;

/**
 *  抽象、继承
 *
 */
public class BaseController {

    /**
     *  所有的controller 都会进行处理请求
     *  返回结果:
     *     成功、失败  （new Result(HttpStatus.SUCCESS, "操作成功") 、 new Result(HttpStatus.ERROR, "操作失败")）
     *          添加或者修改  的返回结果固定
     *
     *     通过结果判断返回
     *         toResult(Integer row)    return row > 0 ? success() : error();
     *         重写  return flag ? success() : error();
     *
     *     查询: 需要返回数据
     *         return new Result(HttpStatus.SUCCESS, "查询数据成功", data);
     */

    /**
     * 返回成功的响应结果
     * @return
     */
    public Result success(){
        return new Result(HttpStatus.SUCCESS, "操作成功");
    }

    /**
     * 返回失败的响应结果
     * @return
     */
    public Result error(){
        return new Result(HttpStatus.ERROR, "操作失败");
    }

    /**
     * 判断操作影响的记录数，返回对应的结果
     * @param row
     * @return
     */
    public Result toResult(Integer row){
        return row > 0 ? success() : error();
    }

    /**
     * 判断操作返回的状态，返回对应的结果
     * @param flag
     * @return
     */
    public Result toResult(Boolean flag){
        return flag ? success() : error();
    }

    /**
     * 返回带有查询数据的响应结果
     * @param data
     * @return
     */
    public Result toDataResult(Object data){
        return new Result(HttpStatus.SUCCESS, "查询数据成功", data);
    }
    
}